#define _CRT_SECURE_NO_WARNINGS 1 
#include <stdio.h>

//递归必须满足的3个条件
//	1.递归必须得有一个明确的终止条件
//	2.递归产生的值可以是在递增，但该函数所处理的数据规模必须是呈递减趋势
//	 （所谓的递减是指函数语句最终要满足终止条件）
//	3.这种转换必须是可解的
//	  当解决一个问题时不必纠结于该问题是否能够通过递归实现
//	  只需理解递归思想，看懂运用递归思想解决问题的具体代码即可

int f(int n)
{
	if (n > 7)
	{
		printf("haha\n");
	}
	else
	{
		n = f(n + 1);
	}
	return n;
}

int main(void)
{
	int val = 0;
	val = f(1);
	printf("val = %d", val);
	return 0;
}
//可以看出，当执行函数f()时发生递归，且n的值在递增。但当 n = 8 时，满足递归结束的终止条件
//即递归导致n的值是在递增，但该函数所处理的数据规模是呈递减趋势